package com.ztesoft.web.taskgenerator.db.dao.mapper;

import com.ztesoft.web.taskgenerator.db.arg.DmTaskStageDefineArg;
import com.ztesoft.web.taskgenerator.db.po.DmTaskStageDefinePO;

import java.math.*;
import java.util.*;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.RowBounds;

public interface IDmTaskStageDefineMapper {
    
    List<Integer> countByArg(DmTaskStageDefineArg arg);

    List<DmTaskStageDefinePO> selectByArg(DmTaskStageDefineArg arg);

    DmTaskStageDefinePO selectByPrimaryKey(Integer id);

    List<DmTaskStageDefinePO> selectByArgAndPage(DmTaskStageDefineArg arg, RowBounds rowBound);

    int insert(DmTaskStageDefinePO record);

    int insertSelective(DmTaskStageDefinePO record);

    int insertBatch(@Param("list") List<DmTaskStageDefinePO> records);

    int updateByArgSelective(@Param("record") DmTaskStageDefinePO record,
            @Param("arg") DmTaskStageDefineArg arg);

    int updateByArg(@Param("record") DmTaskStageDefinePO record,
            @Param("arg") DmTaskStageDefineArg arg);

    int updateByPrimaryKeySelective(DmTaskStageDefinePO record);

    int updateByPrimaryKey(DmTaskStageDefinePO record);
    
    int deleteByArg(DmTaskStageDefineArg arg);
    
    int deleteByPrimaryKey(Integer id);
    
    List<DmTaskStageDefinePO> selectByOperType(String operType);
    
    DmTaskStageDefinePO selectTaskStage(Integer operType, Integer stage, Integer priority);
    
}